The present technique relates to the field of data processing.
It is common to use floating-point (FP) representation in data processing systems. A floating-point number includes a significand and an exponent indicating a significance of the bits of the significand. This allows numeric values over a large range to be represented using a finite number of bits. However, a problem with floating-point arithmetic is that calculations are generally non-associative, a fact that makes sums problematic. In particular programmers need to worry about obtaining different results, even when adding a small number of values.
To seek to address the associativity issue, a new datatype has been proposed, called a high-precision anchored (HPA) number. A high-precision anchored (HPA) number is a pair (i, a) consisting of a long two's complement integer i (e.g. 200 bits), and a smaller anchor integer a that represents the weights of the bits of i, typically by specifying the significance of the smallest bit of i. Floating-point values can be converted into HPA form, and thereafter additions can be performed in an associative manner.
HPA values can be processed on vector processing circuitry where each long integer of an HPA number may be stored in a separate vector register. However, how efficiently the HPA numbers can be processed will depend on the vector lengths handled by the particular vector processing circuitry.